package icu.qx.gbs.service;

import java.util.List;

import icu.qx.gbs.domain.GbsBom;
import icu.qx.gbs.domain.GbsBomMaterial;
import icu.qx.gbs.domain.PbsProcedureMaterial;

/**
 * BOM清单Service接口
 *
 * @author yong
 * @date 2024-06-12
 */
public interface IGbsBomService {
    /**
     * 查询BOM清单
     *
     * @return BOM清单
     */
    public GbsBom selectGbsBomByBomCode(GbsBom gbsBom);

    /**
     * 通过产品code查询
     */
    List<GbsBom> selectGbsBomByPdCode(String bomPdCode);

    /**
     * 查询BOM清单列表
     *
     * @param gbsBom BOM清单
     * @return BOM清单集合
     */
    public List<GbsBom> selectGbsBomList(GbsBom gbsBom);

    /**
     * 新增BOM清单
     *
     * @param gbsBom BOM清单
     * @return 结果
     */
    public int insertGbsBom(GbsBom gbsBom, List<GbsBomMaterial> gbsBomMaterials, List<PbsProcedureMaterial> pbsProcedureMaterials);

    /**
     * 修改BOM清单
     *
     * @param gbsBom BOM清单
     * @return 结果
     */
    public int updateGbsBom(GbsBom gbsBom, List<GbsBomMaterial> gbsBomMaterials, List<PbsProcedureMaterial> pbsProcedureMaterials);

    /**
     * 批量删除BOM清单
     *
     * @param bomCodes 需要删除的BOM清单主键集合
     * @return 结果
     */
    public int deleteGbsBomByBomCodes(String[] bomCodes);

    /**
     * 删除BOM清单信息
     *
     * @param bomCode BOM清单主键
     * @return 结果
     */
    public int deleteGbsBomByBomCode(String bomCode);
}
